#pragma once

/* Copyright © 2011 Lukas Martini
 *
 * This file is part of Xelix.
 *
 * Xelix is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Xelix is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Xelix. If not, see <http://www.gnu.org/licenses/>.
 */

#include <lib/generic.h>

// A generic keymap for qwerty keyboards. To be replaced later by files.
char keymap_en[512] = {
/*                               normal mode                                         */
/*      0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F */
/*0*/   0,   0, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=','\b','\t',
/*1*/ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']','\n',   0, 'a', 's',
/*2*/ 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';','\'', '`',   0,   0, 'z', 'x', 'c', 'v',
/*3*/ 'b', 'n', 'm', ',', '.', '/',   0,   0,   0, ' ',   0,   0,   0,   0,   0,   0,
/*4*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*5*/   0,   0,   0,   0,   0,   0,'\\',   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*6*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*7*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*8*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*9*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*A*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*B*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*C*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*D*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*E*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*F*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,

/*                               modifier: shift                                     */
/*      0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F */
/*0*/   0, '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+','\b','\t',
/*1*/ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}','\n',   0, 'A', 'S',
/*2*/ 'D', 'F', 'G', 'H', 'J', 'K', 'L',  ':','"',  '~',   0,   0, 'Z', 'X', 'C', 'V',
/*3*/ 'B', 'N', 'M', '<', '>', '?',   0,   0,   0, ' ',   0,   0,   0,   0,   0,   0,
/*4*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*5*/   0,   0,   0,   0,   0,   0, '|',   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*6*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*7*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*8*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*9*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*A*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*B*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*C*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*D*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*E*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*F*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
};

char keymap_de[512] = {
/*                               normal mode                                         */
/*      0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F */
/*0*/   0,   0, '1', '2', '3', '4', '5', '7', '8', '9', '0',   0,   0,   0,'\b','\t',
/*1*/ 'q', 'w', 'e', 'r', 't', 'z', 'u', 'i', 'o', 'p',   0, '+','\n',   0, 'a', 's',
/*2*/ 'd', 'f', 'g', 'h', 'j', 'k', 'l',   0,   0,   0,   0, '#', 'z', 'x', 'c', 'v',
/*3*/ 'b', 'n', 'm', ',', '.', '-',   0,   0,   0, ' ',   0,   0,   0,   0,   0,   0,
/*4*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*5*/   0,   0,   0,   0,   0,   0, '<',   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*6*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*7*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*8*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*9*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*A*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*B*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*C*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*D*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*E*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*F*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,

/*                               modifier: shift                                     */
/*      0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F */
/*0*/   0,   0, '!', '"',   0, '$', '%', '&', '/', '(', ')', '=', '?', '`','\b','\t',
/*1*/ 'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I', 'O', 'P',   0, '*','\n',   0, 'A', 'S',
/*2*/ 'D', 'F', 'G', 'H', 'J', 'K', 'L',   0,   0,   0,   0,'\'', 'Z', 'X', 'C', 'V',
/*3*/ 'B', 'N', 'M', ';', ':', '_',   0,   0,   0, ' ',   0,   0,   0,   0,   0,   0,
/*4*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*5*/   0,   0,   0,   0,   0,   0, '>',   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*6*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*7*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*8*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*9*/   0,   0, '^',   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*A*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*B*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*C*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*D*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*E*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
/*F*/   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
};

 
